# éç½®æä»¶
from typing import Dict, List, Tuple
import numpy as np
import torch

class ExpConfig(object):
    def __init__(self):
        self.name = 'apps.exp.exp_config.ExpConfig'

    # å®ä¹éç½®åé
    # é·è¾¾åæ°
    c = 3e8          # åé€ [m/s]
    f0 = 10e9        # è½½é¢ [Hz]
    B = 5e6          # å¸¦å®½ [Hz]
    S = 50e6         # éæ ·ç [Hz]
    N = 1024         # éæ ·ç¹æ°
    SNR_dB = 20 # dB

    # ç®æ åæ°
    targets = [
        {"r": 1000, "v": 30, "alpha": 1.0},   # ç®æ 1ï¼è·ç¦»1000mï¼é€åº¦30m/s
        {"r": 2500, "v": -50, "alpha": 0.5}   # ç®æ 2ï¼è·ç¦»2500mï¼é€åº¦-50m/s
    ]

    # ==============================
    # åå°ä¿¡å·çæ (LFM)
    # ==============================
    Ts = 1/S  # éæ ·é´é
    t = torch.arange(N) * Ts  # æ¶é´åºå

    # çº¿æ€§è°é¢ä¿¡å·ç¸ä½è®¡ç®
    K = B / (N*Ts)  # è°é¢æç
    # phase = 2 * torch.pi * (f0 * t + 0.5 * K * t**2)
    # s = torch.exp(1j * phase)  # å¤æ°ä¿¡å·